home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / pbuild6 / connect.cls next >
Text File  |  1999-01-27  |  5KB  |  159 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "Connect"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Attribute VB_Description = "Procedure Builder"
  15. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  16. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  17. Option Explicit
  18.  
  19. Implements IDTExtensibility
  20.  
  21. Public FormDisplayed As Boolean
  22. Public VBInstance As vbide.VBE
  23. Dim mcbMenuCommandBar As Office.CommandBarControl
  24. Dim mfrmProcedureBuilder As New frmProcedureBuilder
  25. Public WithEvents MenuHandler As CommandBarEvents          'command bar event handler
  26. Attribute MenuHandler.VB_VarHelpID = -1
  27. Sub Hide()
  28.  
  29.     On Error Resume Next
  30.     
  31.     FormDisplayed = False
  32.     mfrmProcedureBuilder.Hide
  33.  
  34. End Sub
  35. Sub Show()
  36.   
  37.     On Error Resume Next
  38.     
  39.     ' Get the component
  40.     Set VBC = VBInstance.SelectedVBComponent
  41.     
  42.     If mfrmProcedureBuilder Is Nothing Then
  43.         Set mfrmProcedureBuilder = New frmProcedureBuilder
  44.     End If
  45.     
  46.     Set mfrmProcedureBuilder.VBInstance = VBInstance
  47.     Set mfrmProcedureBuilder.Connect = Me
  48.     FormDisplayed = True
  49.     mfrmProcedureBuilder.Show
  50.    
  51. End Sub
  52.  
  53. '------------------------------------------------------
  54. 'this method adds the Add-In to VB
  55. '------------------------------------------------------
  56. Private Sub IDTExtensibility_OnConnection(ByVal VBInst As Object, ByVal ConnectMode As vbext_ConnectMode, ByVal AddInInst As vbide.AddIn, custom() As Variant)
  57.     
  58.     On Error GoTo error_handler
  59.     
  60.     'save the vb instance
  61.     Set VBInstance = VBInst
  62.     
  63.     'this is a good place to set a breakpoint and
  64.     'test various addin objects, properties and methods
  65.     Debug.Print VBInst.FullName
  66.  
  67.     If ConnectMode = vbext_cm_External Then
  68.         'Used by the wizard toolbar to start this wizard
  69.         Me.Show
  70.     Else
  71.         Set mcbMenuCommandBar = AddToAddInCommandBar("&Procedure Builder")
  72.         'sink the event
  73.         Set Me.MenuHandler = VBInst.Events.CommandBarEvents(mcbMenuCommandBar)
  74.     End If
  75.   
  76.     If ConnectMode = vbext_cm_AfterStartup Then
  77.         If GetSetting(App.Title, "Settings", "DisplayOnConnect", "0") = "1" Then
  78.             'set this to display the form on connect
  79.             Me.Show
  80.         End If
  81.     End If
  82.   
  83.     Exit Sub
  84.     
  85. error_handler:
  86.     
  87.     MsgBox Err.Description
  88.     
  89. End Sub
  90. '------------------------------------------------------
  91. 'this method removes the Add-In from VB
  92. '------------------------------------------------------
  93. Private Sub IDTExtensibility_OnDisconnection(ByVal RemoveMode As vbext_DisconnectMode, custom() As Variant)
  94.     
  95.     On Error Resume Next
  96.     
  97.     'delete the command bar entry
  98.     mcbMenuCommandBar.Delete
  99.     
  100.     'shut down the Add-In
  101.     If FormDisplayed Then
  102.         SaveSetting App.Title, "Settings", "DisplayOnConnect", "1"
  103.         FormDisplayed = False
  104.     Else
  105.         SaveSetting App.Title, "Settings", "DisplayOnConnect", "0"
  106.     End If
  107.     
  108.     Unload mfrmProcedureBuilder
  109.     Set mfrmProcedureBuilder = Nothing
  110.  
  111. End Sub
  112. Private Sub IDTExtensibility_OnStartupComplete(custom() As Variant)
  113.     If GetSetting(App.Title, "Settings", "DisplayOnConnect", "0") = "1" Then
  114.         'set this to display the form on connect
  115.         Me.Show
  116.     End If
  117. End Sub
  118. Private Sub IDTExtensibility_OnAddInsUpdate(custom() As Variant)
  119. ' Must have a comment here to prevent the compiler from removing the procedure
  120. End Sub
  121. 'this event fires when the menu is clicked in the IDE
  122. Private Sub MenuHandler_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean)
  123.  
  124. ' First ascertain whether a module or class module is selected.
  125. ' If so then continue otherwise exit
  126. If VBInstance.CodePanes.Count = 0 Then
  127.     ' Notify the user that there is no code pane to amend
  128.     MsgBox "You must have a code pane opened"
  129. Else
  130.     Me.Show
  131. End If
  132.  
  133. End Sub
  134. Function AddToAddInCommandBar(sCaption As String) As Office.CommandBarControl
  135.     Dim cbMenuCommandBar As Office.CommandBarControl  'command bar object
  136.     Dim cbMenu As Object
  137.   
  138.     On Error GoTo AddToAddInCommandBarErr
  139.     
  140.     'see if we can find the Add-Ins menu
  141.     Set cbMenu = VBInstance.CommandBars("Add-Ins")
  142.     If cbMenu Is Nothing Then
  143.         'not available so we fail
  144.         Exit Function
  145.     End If
  146.     
  147.     'add it to the command bar
  148.     Set cbMenuCommandBar = cbMenu.Controls.Add(1)
  149.     'set the caption
  150.     cbMenuCommandBar.Caption = sCaption
  151.     
  152.     Set AddToAddInCommandBar = cbMenuCommandBar
  153.     
  154.     Exit Function
  155.     
  156. AddToAddInCommandBarErr:
  157.  
  158. End Function
  159.